Ext.ns('Tm.task');
Tm.task.TaskLogIndexPanel = Ext.extend(Ext.Panel, {
			id : 'taskLogIndexPanel',
			frame : true,
			autoWidth : true,
			// autoHeight : true,
			layout : 'fit',
			taskId : null,
			status : null,
			initComponent : function() {
				var taskId = this.taskId;
				var cm = new Ext.grid.ColumnModel([{
							header : 'id',
							width : 20,
							dataIndex : 'id',
							hidden : true
						}, {
							header : '标题',
							width : 80,
							dataIndex : 'title',
							sortable : true,
							renderer : function(data, metadata, record, rowIndex, columnIndex, store) {
								metadata.attr = 'ext:qtitle="' + this.header + '"' + ' ext:qtip="' + data + '"';
								return data;
							}
						}, {
							header : '内容',
							width : 300,
							dataIndex : 'content',
							sortable : true,
							renderer : function(data, metadata, record, rowIndex, columnIndex, store) {
								metadata.attr = 'ext:qtitle="' + this.header + '"' + ' ext:qtip="' + data + '"';
								return data;
							}
						}, {
							header : '系统日志',
							width : 80,
							dataIndex : 'isSystem',
							xtype : 'combocolumn',
							editor : new Ext.form.ComboBox({
										name : 'isSystem',
										fieldLabel : '是否启用',
										mode : 'local',
										editable : false,
										typeAhead : true,
										forceSelection : true,
										hiddenName : 'isSystem',
										mode : 'local',
										triggerAction : 'all',
										emptyText : '请选择...',
										selectOnFocus : true,
										store : Tm.data.taskLogIsSystem,
										allowBlank : false
									}),
							sortable : true
						}, {
							header : '创建人',
							width : 80,
							dataIndex : 'createName',
							sortable : true
						}, {
							header : '创建日期',
							width : 80,
							renderer : Ext.util.Format.customDateRenderer('Y-m-d'),
							dataIndex : 'createTime'
						}, {
							header : '更新人',
							width : 80,
							dataIndex : 'createName',
							sortable : true
						}, {
							header : '更新日期',
							width : 80,
							renderer : Ext.util.Format.customDateRenderer('Y-m-d'),
							dataIndex : 'createTime'
						}]);
				cm.defaultSortable = true;
				var fields = [{
							name : 'id',
							type : 'int',
							mapping : 'id'
						}, {
							name : 'taskId',
							type : 'int',
							mapping : 'taskId'
						}, {
							name : 'title',
							type : 'string',
							mapping : 'title'
						}, {
							name : 'content',
							type : 'string',
							mapping : 'content'
						}, {
							name : 'isSystem',
							type : 'string',
							mapping : 'isSystem'
						}, {
							name : 'createName',
							type : 'string',
							mapping : 'createName'
						}, {
							name : 'createTime',
							type : 'string',
							mapping : 'createTime'
						}, {
							name : 'lastUpdateName',
							type : 'string',
							mapping : 'lastUpdateName'
						}, {
							name : 'lastUpdateTime',
							type : 'string',
							mapping : 'lastUpdateTime'
						}
						
						
						
						];
				var ds = new Ext.data.Store({
							id : 'TaskLogIndexPanelGridPanelStore',
							proxy : new Ext.data.HttpProxy({
										url : 'task/getLogListByTaskId.do'
									}),
							reader : new Ext.data.JsonReader({
										totalProperty : 'totalProperty',
										root : 'root',
										id : 'id',
										fields : fields
									}),
							baseParams : {
								start : 0,
								limit : 20
							},
							sortInfo : {
								field : 'id',
								direction : 'ASC'
							},
							autoLoad : true,
							listeners : {
								beforeload : function() {
									Ext.apply(this.baseParams, {
												taskId : taskId
											});
								}
							}
						});
				var grid = new Ext.grid.GridPanel({
							store : ds,
							cm : cm,
							ref : 'grid',
							border : false,
							stripeRows : true,
							autoHeight : true,
							viewConfig : {
								forceFit : true
							},
							bbar : new Ext.PagingToolbar({
										plugins : new Ext.ux.ProgressBarPager(),
										pageSize : 20,
										store : ds,
										displayInfo : true,
										emptyMsg : '没有记录'
									}),
							listeners : {
								celldblclick : function(grid, rowIndex, columnIndex, event) {
									var store = grid.getStore();
									var data = store.getAt(rowIndex).data;
									var taskLogUpdatePanel = new Tm.task.TaskLogAddPanel({
												dataId : data.id,
												taskId : data.taskId,
												isSystem : data.isSystem
											});
									var taskLogUpdateWindow = new Tm.common.CommonWindow({
												id : 'taskLogUpdateWindow',
												title : '更新案件日志',
												items : taskLogUpdatePanel
											});
									taskLogUpdateWindow.on('close', function(panel) {
												store.load();
											});
									taskLogUpdateWindow.show();
								}
							}
						});
				var toolBar = new Ext.Toolbar({
							hideBorders : true,
							autoHeight : true,
							items : [{
										text : '新增案件日志',
										iconCls : 'act_addIcon',
										handler : function() {
											var taskLogIndexPanel = Ext.getCmp('taskLogIndexPanel');
											var taskId = taskLogIndexPanel.taskId;
											var taskLogAddPanel = new Tm.task.TaskLogAddPanel({
														isSystem : 'N',
														taskId : taskId
													});
											var taskLogAddWindow = new Tm.common.CommonWindow({
														id : 'taskLogAddWindow',
														title : '新增进度日志',
														items : taskLogAddPanel
													});
											taskLogAddWindow.on('close', function(panel) {
														taskLogIndexPanel.grid.store.load();
													});
											taskLogAddWindow.show();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										id : 'currentStatusLabel',
										xtype : 'label',
										text:'当前进度:载入中...'
									}, {
										xtype : 'tbfill'
									}, {
										id : 'taskStatusCombox',
										fieldLabel : '下一步',
										name : 'status',
										hiddenName : 'status',
										//allowBlank : false,
										valueField : 'code',
										displayField : 'name',
										typeAhead : true,
										xtype : 'commoncombobox',
										mode : 'remote',
										triggerAction : 'all',
										emptyText : '请选择...',
										labelWidth : 45,
										editable : false,
										// readOnly:true,
										plugins : [Ext.ux.FieldLabeler],
										store : new Ext.data.JsonStore({// /列表框中的选项数据
											url : 'task/getCurrentTaskStatusList.do',
											autoLoad : true,
											listeners : {
												beforeload : function() {
													var taskLogIndexPanel = Ext.getCmp('taskLogIndexPanel');
													Ext.apply(this.baseParams, {
																code : taskLogIndexPanel.status
															});
												}
											},
											fields : [{
														name : 'code'
													}, {
														name : 'name'
													}]
										})
									}, {
										xtype : 'tbseparator'
									}, {
										text : '更新进度',
										iconCls : 'icon_save_status',
										handler : function() {
											var taskLogIndexPanel = Ext.getCmp('taskLogIndexPanel');
											var oldStatus = taskLogIndexPanel.status;
											var taskId = taskLogIndexPanel.taskId;
											var taskStatusCombox=Ext.getCmp('taskStatusCombox');
											var status = taskStatusCombox.getValue();
										//	console.dir(taskStatusCombox);
											if (status) {
												Ext.MessageBox.confirm('注意', '您确定更改该案件状态为['+taskStatusCombox.lastSelectionText + ']?', function(btn) {
															if (btn == 'yes') {
																Ext.Ajax.request({
																			waitMsg : '正在提交,请稍候...',
																			method : 'post',
																			url : 'task/updateTaskStatus.do',
																			params : {
																				taskId : taskId,
																				status : status
																			},
																			success : function(response, action) {
																				var task = Ext.decode(response.responseText);
																				if (!task.error) {
																					App.setAlert('ok', '保存成功!');
																					taskLogIndexPanel.status = task.status;
																					taskLogIndexPanel.grid.store.load();
																					taskStatusCombox.store.isLoaded=false;
																					taskStatusCombox.setValue(null);
																					taskLogIndexPanel.getCurrentStatus(task.id);
																					
																				}
																			},
																			failure : function(response, action) {
																				App.setAlert('ok', '保存失败!');
																			}
																		});
															}
														});
											}else{
												App.setAlert('notice', '请先选择案件的下一步状态');
											}
										}
									}]
						});
				Ext.apply(this, {
							tbar : toolBar,
							items : [grid]
						});
				Tm.task.TaskLogIndexPanel.superclass.initComponent.call(this);
			},
			listeners : {
				afterrender : function() {
					//Ext.getCmp('taskStatusCombox').setValue(this.status);
					this.getCurrentStatus(this.taskId);
				}
			},
			getCurrentStatus : function(taskId) {
				Ext.Ajax.request({
							method : 'post',
							url : 'task/getCurrentStatusByTaskId.do',
							params : {
								taskId : taskId
							},
							success : function(response, action) {
								var stauts = Ext.decode(response.responseText);
								if (!stauts.error) {
											var currentStatusLabel=Ext.getCmp('currentStatusLabel');
											currentStatusLabel.setText('当前状态:'+stauts.name);
									if(stauts.nextSteps==null||stauts.nextSteps==''){
										Ext.getCmp('taskStatusCombox').disable();
										
									}

								}
							},
							failure : function(response, action) {
								App.setAlert('ok', '载入失败!');
							}
						});
			}
		});
